home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.plaf.basic;
-
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Insets;
- import java.awt.Rectangle;
- import java.beans.PropertyChangeEvent;
- import java.beans.PropertyChangeListener;
- import java.util.EventObject;
- import javax.swing.Icon;
- import javax.swing.JComponent;
- import javax.swing.JLabel;
- import javax.swing.KeyStroke;
- import javax.swing.LookAndFeel;
- import javax.swing.SwingUtilities;
- import javax.swing.plaf.ComponentUI;
- import javax.swing.plaf.LabelUI;
- import javax.swing.text.View;
-
- public class BasicLabelUI extends LabelUI implements PropertyChangeListener {
- protected static BasicLabelUI labelUI = new BasicLabelUI();
- private static Rectangle paintIconR = new Rectangle();
- private static Rectangle paintTextR = new Rectangle();
- private static Rectangle paintViewR = new Rectangle();
- private static Insets paintViewInsets = new Insets(0, 0, 0, 0);
- private static Rectangle iconR = new Rectangle();
- private static Rectangle textR = new Rectangle();
- private static Rectangle viewR = new Rectangle();
- private static Insets viewInsets = new Insets(0, 0, 0, 0);
-
- public static ComponentUI createUI(JComponent var0) {
- return labelUI;
- }
-
- public Dimension getMaximumSize(JComponent var1) {
- Dimension var2 = this.getPreferredSize(var1);
- View var3 = (View)var1.getClientProperty("html");
- if (var3 != null) {
- var2.width = (int)((float)var2.width + (var3.getMaximumSpan(0) - var3.getPreferredSpan(0)));
- }
-
- return var2;
- }
-
- public Dimension getMinimumSize(JComponent var1) {
- Dimension var2 = this.getPreferredSize(var1);
- View var3 = (View)var1.getClientProperty("html");
- if (var3 != null) {
- var2.width = (int)((float)var2.width - (var3.getPreferredSpan(0) - var3.getMinimumSpan(0)));
- }
-
- return var2;
- }
-
- public Dimension getPreferredSize(JComponent var1) {
- JLabel var2 = (JLabel)var1;
- String var3 = var2.getText();
- Icon var4 = var2.getIcon();
- Insets var5 = ((JComponent)var2).getInsets(viewInsets);
- Font var6 = ((Component)var2).getFont();
- int var7 = var5.left + var5.right;
- int var8 = var5.top + var5.bottom;
- if (var4 != null || var3 != null && (var3 == null || var6 != null)) {
- if (var3 != null && (var4 == null || var6 != null)) {
- FontMetrics var9 = ((Component)var2).getToolkit().getFontMetrics(var6);
- iconR.x = iconR.y = iconR.width = iconR.height = 0;
- textR.x = textR.y = textR.width = textR.height = 0;
- viewR.x = var7;
- viewR.y = var8;
- viewR.width = viewR.height = 32767;
- this.layoutCL(var2, var9, var3, var4, viewR, iconR, textR);
- int var10 = Math.min(iconR.x, textR.x);
- int var11 = Math.max(iconR.x + iconR.width, textR.x + textR.width);
- int var12 = Math.min(iconR.y, textR.y);
- int var13 = Math.max(iconR.y + iconR.height, textR.y + textR.height);
- Dimension var14 = new Dimension(var11 - var10, var13 - var12);
- var14.width += var7;
- var14.height += var8;
- return var14;
- } else {
- return new Dimension(var4.getIconWidth() + var7, var4.getIconHeight() + var8);
- }
- } else {
- return new Dimension(var7, var8);
- }
- }
-
- protected void installComponents(JLabel var1) {
- BasicHTML.updateRenderer(var1, var1.getText());
- }
-
- protected void installDefaults(JLabel var1) {
- LookAndFeel.installColorsAndFont(var1, "Label.background", "Label.foreground", "Label.font");
- }
-
- protected void installKeyboardActions(JLabel var1) {
- int var2 = var1.getDisplayedMnemonic();
- Component var3 = var1.getLabelFor();
- ((JComponent)var1).resetKeyboardActions();
- if (var2 != 0 && var3 != null) {
- ((JComponent)var1).registerKeyboardAction(new PressAction(var1, var3), KeyStroke.getKeyStroke(var2, 8, false), 2);
- }
-
- }
-
- protected void installListeners(JLabel var1) {
- ((JComponent)var1).addPropertyChangeListener(this);
- }
-
- public void installUI(JComponent var1) {
- this.installDefaults((JLabel)var1);
- this.installComponents((JLabel)var1);
- this.installListeners((JLabel)var1);
- this.installKeyboardActions((JLabel)var1);
- }
-
- protected String layoutCL(JLabel var1, FontMetrics var2, String var3, Icon var4, Rectangle var5, Rectangle var6, Rectangle var7) {
- return SwingUtilities.layoutCompoundLabel(var1, var2, var3, var4, var1.getVerticalAlignment(), var1.getHorizontalAlignment(), var1.getVerticalTextPosition(), var1.getHorizontalTextPosition(), var5, var6, var7, var1.getIconTextGap());
- }
-
- public void paint(Graphics var1, JComponent var2) {
- JLabel var3 = (JLabel)var2;
- String var4 = var3.getText();
- Icon var5 = ((Component)var3).isEnabled() ? var3.getIcon() : var3.getDisabledIcon();
- if (var5 != null || var4 != null) {
- FontMetrics var6 = var1.getFontMetrics();
- paintViewInsets = var2.getInsets(paintViewInsets);
- paintViewR.x = paintViewInsets.left;
- paintViewR.y = paintViewInsets.top;
- paintViewR.width = var2.getWidth() - (paintViewInsets.left + paintViewInsets.right);
- paintViewR.height = var2.getHeight() - (paintViewInsets.top + paintViewInsets.bottom);
- paintIconR.x = paintIconR.y = paintIconR.width = paintIconR.height = 0;
- paintTextR.x = paintTextR.y = paintTextR.width = paintTextR.height = 0;
- String var7 = this.layoutCL(var3, var6, var4, var5, paintViewR, paintIconR, paintTextR);
- if (var5 != null) {
- var5.paintIcon(var2, var1, paintIconR.x, paintIconR.y);
- }
-
- if (var4 != null) {
- View var8 = (View)var2.getClientProperty("html");
- if (var8 != null) {
- var8.paint(var1, paintTextR);
- } else {
- int var9 = paintTextR.x;
- int var10 = paintTextR.y + var6.getAscent();
- if (((Component)var3).isEnabled()) {
- this.paintEnabledText(var3, var1, var7, var9, var10);
- } else {
- this.paintDisabledText(var3, var1, var7, var9, var10);
- }
- }
- }
-
- }
- }
-
- protected void paintDisabledText(JLabel var1, Graphics var2, String var3, int var4, int var5) {
- int var6 = var1.getDisplayedMnemonic();
- Color var7 = ((Component)var1).getBackground();
- var2.setColor(var7.brighter());
- BasicGraphicsUtils.drawString(var2, var3, var6, var4 + 1, var5 + 1);
- var2.setColor(var7.darker());
- BasicGraphicsUtils.drawString(var2, var3, var6, var4, var5);
- }
-
- protected void paintEnabledText(JLabel var1, Graphics var2, String var3, int var4, int var5) {
- int var6 = var1.getDisplayedMnemonic();
- var2.setColor(((Component)var1).getForeground());
- BasicGraphicsUtils.drawString(var2, var3, var6, var4, var5);
- }
-
- public void propertyChange(PropertyChangeEvent var1) {
- String var2 = var1.getPropertyName();
- if (!var1.getPropertyName().equals("labelFor") && !var1.getPropertyName().equals("displayedMnemonic")) {
- if (var2.equals("text")) {
- JLabel var3 = (JLabel)((EventObject)var1).getSource();
- String var4 = var3.getText();
- BasicHTML.updateRenderer(var3, var4);
- }
- } else {
- this.installKeyboardActions((JLabel)((EventObject)var1).getSource());
- }
-
- }
-
- protected void uninstallComponents(JLabel var1) {
- BasicHTML.updateRenderer(var1, "");
- }
-
- protected void uninstallDefaults(JLabel var1) {
- }
-
- protected void uninstallKeyboardActions(JLabel var1) {
- ((JComponent)var1).resetKeyboardActions();
- }
-
- protected void uninstallListeners(JLabel var1) {
- ((JComponent)var1).removePropertyChangeListener(this);
- }
-
- public void uninstallUI(JComponent var1) {
- this.uninstallDefaults((JLabel)var1);
- this.uninstallComponents((JLabel)var1);
- this.uninstallListeners((JLabel)var1);
- this.uninstallKeyboardActions((JLabel)var1);
- }
- }
-